package com.nanhai.buddhist.college.module.collegebase.controller.admin.studentroll.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.math.BigDecimal;
import java.util.Date;

import static com.nanhai.buddhist.college.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
 * @author AKai
 * @date 2022/9/15
 */
@Data
public class StudentUpdateReqVO {
    @ApiModelProperty(value = "主键id", required = true)
    private String id;

    @ApiModelProperty(value = "姓名", required = true)
    private String studentName;

    @ApiModelProperty(value = "法号", required = true)
    private String legalName;

    @ApiModelProperty(value = "性别", required = true)
    private Integer studentSex;

    @ApiModelProperty(value = "证件照片", required = true)

    private String papersImage;

    @ApiModelProperty(value = "婚姻状况", required = true)

    private String maritalStatus;

    @ApiModelProperty(value = "修行类型", required = true)
    private String monastical;

    @ApiModelProperty(value = "年龄", required = true)
    private Integer studentAge;

    @ApiModelProperty(value = "民族", required = true)

    private String nation;

    @ApiModelProperty(value = "身份证号")
    private String identityCardNumber;

    @ApiModelProperty(value = "紧急联系人")
    private String instancyContacts;

    @ApiModelProperty(value = "紧急联系人电话")
    private String instancyContactsPhone;

    @ApiModelProperty(value = "本人电话", required = true)

    private String phone;

    @ApiModelProperty(value = "健康状况", required = true)
    private String health;

    @ApiModelProperty(value = "专业", required = true)
    private String major;

    @ApiModelProperty(value = "是否受具足戒", required = true)
    private String footQuit;

    @ApiModelProperty(value = "邮箱", required = true)
    private String email;

    @ApiModelProperty(value = "微信")
    private String wechat;

    @ApiModelProperty(value = "居住地址")
    private String dwellAddress;

    @ApiModelProperty(value = "文化程度")
    private String education;

    @ApiModelProperty(value = "受戒寺院")
    private String receiveDisciplineTemple;

    @ApiModelProperty(value = " 受戒日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date receiveDisciplineTime;

    @ApiModelProperty(value = "得戒和尚尊讳")
    private String receiveDisciplineName;

    @ApiModelProperty(value = "出家时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = "GMT+8")
    private Date monachalTime;

    @ApiModelProperty(value = "出家寺院")
    private String monachalTemple;

    @ApiModelProperty(value = "剃度师尊讳")
    private String gradientTeachersName;

    @ApiModelProperty(value = "梯度师电话")
    private String gradientTeachersPhone;

    @ApiModelProperty(value = "证件地址")
    private String papersAddress;

    @ApiModelProperty(value = "编号")
    private String serialNumber;

    @ApiModelProperty(value = "学院")
    private String college;

    @ApiModelProperty(value = "学号")
    private String studentNumber;

    @ApiModelProperty(value = "系部")
    private String department;

    @ApiModelProperty(value = "班级")
    private String classGrade;

    @ApiModelProperty(value = "生日")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthday;

    @ApiModelProperty(value = "审核状态")
    private Integer checkStatus;

    @ApiModelProperty(value = "审核人")
    private String checkUser;

    @ApiModelProperty(value = "审核时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = "GMT+8")
    private Date checkTime;

    @ApiModelProperty(value = "入学时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date enrollmentTime;

    @ApiModelProperty(value = "学费缴纳")
    private String tuitionFee;

    @ApiModelProperty(value = "年级")
    private String yearGrade;

    @ApiModelProperty(value = "头像")
    private String headImage;

    @ApiModelProperty(value = "注册状态")
    private String registerStatus;

    @ApiModelProperty(value = "在籍状态")
    private String recordStatus;

    @ApiModelProperty(value = "证件正面照片")
    private String frontImage;

    @ApiModelProperty(value = "证件反面照片")
    private String reversesImage;

    @ApiModelProperty(value = "籍贯")
    private String natively;

    @ApiModelProperty(value = "证件类型")
    private String papersType;

    @ApiModelProperty(value = "备用电话")
    private String standbyPhone;

    @ApiModelProperty(value = "紧急联系人关系")
    private String instancyRelation;

    @ApiModelProperty(value = "毕业时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date graduateTime;

    @ApiModelProperty(value = "毕业结论")
    private String graduateVerdict;

    @ApiModelProperty(value = "毕业编号")
    private String graduateNumber;

    @ApiModelProperty(value = "学位编号")
    private String degreeNumber;

    @ApiModelProperty(value = "系部id")
    private String departmentsId;

    @ApiModelProperty(value = "审核备注")
    private String checkRemark;

    @ApiModelProperty(value = "学院Id")
    private String collegesId;

    @ApiModelProperty(value = "专业id")
    private String professionsId;

    @ApiModelProperty(value = "班级id")
    private String classesId;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "缴费学期")
    private String tuitionFeeSemester;

    @ApiModelProperty("缴费金额")
    private BigDecimal tuitionFeeMoney;

    @ApiModelProperty("缴费方式")
    private String tuitionFeeType;

    @ApiModelProperty("缴费时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = "GMT+8")
    private Date tuitionFeeTime;

}
